@echo off
chcp 65001 >nul
echo ===== C语言核心算法测试脚本 (Windows原生版本) =====

echo.
echo 1. 清理之前的编译文件...
del /Q *.exe *.o *.txt 2>nul

echo.
echo 2. 检查GCC编译器...
gcc --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 未找到GCC编译器！
    echo 请安装以下之一：
    echo • MinGW-w64: https://www.mingw-w64.org/
    echo • TDM-GCC: https://jmeubank.github.io/tdm-gcc/
    echo • 或通过Anaconda: conda install m2w64-gcc
    pause
    exit /b 1
)
echo ✅ GCC编译器可用

echo.
echo 3. 编译基本测试程序...
echo 正在编译 graph_core.c...
gcc -c -Wall -Wextra -O2 -std=c99 graph_core.c -o graph_core.o
if %errorlevel% neq 0 (
    echo ❌ graph_core.c 编译失败
    pause
    exit /b 1
)

echo 正在编译 csv_loader.c...
gcc -c -Wall -Wextra -O2 -std=c99 csv_loader.c -o csv_loader.o
if %errorlevel% neq 0 (
    echo ❌ csv_loader.c 编译失败
    pause
    exit /b 1
)

echo 正在编译 test_basic.c...
gcc -c -Wall -Wextra -O2 -std=c99 test_basic.c -o test_basic.o
if %errorlevel% neq 0 (
    echo ❌ test_basic.c 编译失败
    pause
    exit /b 1
)

echo 正在链接基本测试程序...
gcc test_basic.o graph_core.o csv_loader.o -o test_basic.exe -lm
if %errorlevel% neq 0 (
    echo ❌ 基本测试程序链接失败
    pause
    exit /b 1
)
echo ✅ 基本测试程序编译成功

echo.
echo 4. 运行基本功能测试...
test_basic.exe
if %errorlevel% neq 0 (
    echo ❌ 基本测试运行失败
    pause
    exit /b 1
)

echo.
echo 5. 编译完整优化程序...
echo 正在编译 optimizer.c...
gcc -c -Wall -Wextra -O2 -std=c99 optimizer.c -o optimizer.o
if %errorlevel% neq 0 (
    echo ❌ optimizer.c 编译失败
    pause
    exit /b 1
)

echo 正在编译 main.c...
gcc -c -Wall -Wextra -O2 -std=c99 main.c -o main.o
if %errorlevel% neq 0 (
    echo ❌ main.c 编译失败
    pause
    exit /b 1
)

echo 正在链接完整优化程序...
gcc main.o graph_core.o csv_loader.o optimizer.o -o scheduler_optimizer.exe -lm
if %errorlevel% neq 0 (
    echo ❌ 完整优化程序链接失败
    pause
    exit /b 1
)
echo ✅ 完整优化程序编译成功

echo.
echo 6. 运行完整优化程序（快速测试模式）...
scheduler_optimizer.exe
if %errorlevel% neq 0 (
    echo ❌ 完整优化程序运行失败
    pause
    exit /b 1
)

echo.
echo ===== 测试完成！ =====
echo 生成的文件：
dir /B *.txt 2>nul
echo.
echo ✅ 所有测试成功完成！
echo C语言版本的调度优化算法已验证可用。
echo.
pause
